// Copyright (C) 2023 即时通讯网(52im.net) & Jack Jiang.
// The RainbowChat Project. All rights reserved.
// 
// 【本产品为著作权产品，合法授权后请放心使用，禁止外传！】
// 【本次授权给：<北京小羊驼科技有限公司>，授权编号：<NT231212144350>，代码指纹：<A.702363430.550>，技术对接人微信：<ID: wxid_wbyootvkdcgj22>】
// 【授权寄送：<收件：苏先生、地址：北京市大兴区北京密码西区6号楼1单元301、电话：18613885610、邮箱：bd@huiyuanxiang-inc.com>】
// 
// 【本系列产品在国家版权局的著作权登记信息如下】：
// 1）国家版权局登记名(简称)和权证号：RainbowChat    （证书号：软著登字第1220494号、登记号：2016SR041877）
// 2）国家版权局登记名(简称)和权证号：RainbowChat-Web（证书号：软著登字第3743440号、登记号：2019SR0322683）
// 3）国家版权局登记名(简称)和权证号：RainbowAV      （证书号：软著登字第2262004号、登记号：2017SR676720）
// 4）国家版权局登记名(简称)和权证号：MobileIMSDK-Web（证书号：软著登字第2262073号、登记号：2017SR676789）
// 5）国家版权局登记名(简称)和权证号：MobileIMSDK    （证书号：软著登字第1220581号、登记号：2016SR041964）
// * 著作权所有人：江顺/苏州网际时代信息科技有限公司
// 
// 【违法或违规使用投诉和举报方式】：
// 联系邮件：jack.jiang@52im.net
// 联系微信：hellojackjiang
// 联系QQ号：413980957
// 授权说明：http://www.52im.net/thread-1115-1-1.html
// 官方社区：http://www.52im.net
package com.x52im.rbchat.logic.main.mainimpl;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.eva.android.ToolKits;
import com.x52im.rbchat.R;

/**
 * 主界面下方导航栏Tab上的未读数角标组件封装类。
 *
 * @author Jack Jiang
 * @since 8.0
 */
public class NavigationBageViewWrapper {

    /** 角标父布局 */
    private View mBadgeLayoutView = null;
    /** 角标上的数字文本显示组件 */
    private TextView mBadgeNumView = null;
    /** 当前角标显示数字 */
    protected int mBadgeNumber;

    /**
     * 构造方法。
     *
     * @param c          上下文
     * @param container 整个角标布局将放置的父组件引用
     */
    public NavigationBageViewWrapper(Context c, ViewGroup container) {
        // 加载layout，新创建的一个布局组件
        this.mBadgeLayoutView = LayoutInflater.from(c).inflate(R.layout.main_navigation_msg_num, container, false);
        // 从布局组件中加载我们的角标本组件
        this.mBadgeNumView = mBadgeLayoutView.findViewById(R.id.tv_main_navigation_msg_count);
    }

    /**
     * 返回角标父布局引用。
     *
     * @return 角标父布局
     */
    public View getBadgeLayoutView() {
        return this.mBadgeLayoutView;
    }

    /**
     * 设置角标显示数字。
     *
     * @param badgeNumber 大于或等于0的数字
     * @return 本对象引用本身
     */
    public NavigationBageViewWrapper setNumber(int badgeNumber) {
        mBadgeNumber = badgeNumber;
        // 角标数字显示文本处理
        String mBadgeText = ToolKits.getBadgeViewString(mBadgeNumber);

//        // 角标数字显示文本处理
//        if (mBadgeNumber > 0 && mBadgeNumber <= 99) {
//            mBadgeText = String.valueOf(mBadgeNumber);
//        } else if (mBadgeNumber > 99) {
//            mBadgeText = "99+";
//        }

        // 将数字字符串显示在组件上
        if (mBadgeText != null && mBadgeText.length() > 0) {
            this.mBadgeLayoutView.setVisibility(View.VISIBLE);
            this.mBadgeNumView.setText(mBadgeText);
        } else {
            this.mBadgeLayoutView.setVisibility(View.GONE);
            this.mBadgeNumView.setText("");
        }
        this.mBadgeLayoutView.invalidate();

        return this;
    }

    /**
     * 返回当前角标数字。
     *
     * @return 角标数字
     */
    public int getNumber() {
        return this.mBadgeNumber;
    }
}